/*
 *       This file is part of VFC.
 *
 *        VFC is free software: you can redistribute it and/or modify
 *        it under the terms of the GNU General Public License as published by
 *        the Free Software Foundation, either version 3 of the License, or
 *        (at your option) any later version.
 *
 *        VFC is distributed in the hope that it will be useful,
 *        but WITHOUT ANY WARRANTY; without even the implied warranty of
 *        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *        GNU General Public License for more details.
 *
 *        You should have received a copy of the GNU General Public License
 *        along with VFC.  If not, see <http://www.gnu.org/licenses/>.
 */


using System;
using System.Collections.Generic;
using System.Text;

namespace VFC.Nes.Ppu
{
    class Core
    {
        public static void Init()
        {
            //put initialization code here...
        }

        public static void Exec()
        {
            Nes.Counter.PpuCycle += 341;
            Nes.Counter.Scanline++;
            if (Nes.Counter.Scanline >= 240 && Nes.Counter.Scanline <= 259)
            {
                //VBlank period...
                Ppu.PpuRegister.SetVblankFlag();
            }
            else if(Nes.Counter.Scanline == 261)
            {
                Nes.Counter.Scanline = 0;
                Nes.Counter.CpuCycle = 0;
                Nes.Counter.PpuCycle = 0;
                Ppu.PpuRegister.ClearVblankFlag();
            }
        }
    }
}
